一、UniMP [2020]

  1. 在半监督节点分类任务中,我们需要学习带标签的样本,然后对未标记样本进行预测。为更好地对节点进行分类,基于拉普拉斯平滑性假设(Laplacian smoothing assumption),人们提出了消息传递模型来聚合节点邻域的信息从而获得足够的事实(fact)来对未标记节点产生更可靠的预测。

    通常有两种实现消息传递模型的实用方法:

    • 图神经网络 (Graph Neural Network:GNN):通过神经网络执行特征传播 (feature propagation)以进行预测。

    • 标签传播算法( Label Propagation Algorithm:LPA):跨 graph adjacency matrix 的标签传播(label propagation)来进行预测。

    由于 GNN 和 LPA 基于相同的假设:通过消息传播进行半监督分类。因此有一种直觉认为:将它们一起使用可以提高半监督分类的性能。已有一些优秀的研究提出了基于该想法的图模型。例如,APPNP 和 TPN 通过将 GNN 和 LPA 拼接在一起,GCN-LPA 使用 LPA 来正则化 GCN 模型。但是,如下表所示,上述方法仍然无法将 GNN 和 LPA 共同融入消息传递模型,从而在训练和预测过程中同时传播特征和标签。

    为了统一特征传播和标签传播,主要有两个问题需要解决:

    • 聚合特征信息和标签信息:由于节点特征是由embedding 表达的,而节点标签是一个 one-hot 向量。它们不在同一个向量空间中。

      此外,它们的信息传递方式也不同:GNN 可以通过不同的神经网络架构来传播信息,如GraphSAGE、GCN 和 GAT ;但是 LPA 只能通过图邻接矩阵来传递标签信息。

    • 监督训练:用特征传播和标签传播进行监督训练的模型不可避免地会在 self-loop 标签信息中出现过拟合,这使得在训练时出现标签泄漏(label leakage),导致预测的性能不佳。

    受NLP 发展的启发,论文《Masked label prediction: unified message passing model for semi-supervised classification》 提出了一个新的统一消息传递模型(Unified Message Passing: UniMP),并且使用带 masked label prediction 的 UniMP 来解决上述问题。UniMP 模型可以通过一个共享的消息传递网络将特征传播和标签传播,从而在半监督分类中提供更好的性能。

    • UniMP 是一个多层的 Graph Transformer,它使用 label embedding 来将节点标签转换为和节点特征相同的向量空间。

      一方面,UniMP像之前的 attention-based GNN 一样传播节点特征;另一方面,UniMP将multi-head attention 视为转移矩阵从而用于传播 label vector 。因此,每个节点都可以聚合邻域的特征信息和标签信息。

      即,label vector 的转移矩阵来自于 attention ,而不是来自于图的邻接矩阵。

    • 为了监督训练 UniMP 模型而又不过拟合于self-loop 标签信息,论文从 BERT 中的 masked word prediction 中吸取经验,并提出了一种 masked label prediction 策略。该策略随机mask 某些训练样本的标签信息,然后对其进行预测。这种训练方法完美地模拟了图中标签信息从有标签的样本到无标签的样本的转移过程。

    论文在 Open Graph Benchmark:OGB 数据集上对三个半监督分类数据集进行实验,从而证明了 UniMP 获得了 SOTA 半监督分类结果。论文还对具有不同输入的模型进行了消融研究,以证明 UniMP 方法的有效性。此外,论文还对标签传播如何提高 UniMP 模型的性能进行了最彻底的分析。

1.1 模型

  1. 定义图 G=(V,E) ,其中 V={v1,⋯,vn} 为节点集合,E={ei,j} 为边集合。

    • 每个节点 vi 关联一个特征向量 x→i∈Rdf ,其中 df 为特征维度。所有节点的特征向量构成特征矩阵 X∈Rn×df 。

    • 每条边 ei,j 关联一个边特征向量 e→i,j∈Rde 。

    • 每个节点 vi 关联一个标签 yi,其 one-hot 表示为 y→i∈RK ,其中 K 为类别数量。所有节点标签的 one-hot 构成标签矩阵 Y∈Rn×K 。

      实际上在半监督节点分类任务中,大部分节点的标签是未知的。因此我们定义初始标签矩阵 Y^(0),该矩阵由所有节点的 one-hot 标签向量或者全零向量组成:对于标记节点,它就是标签的 one-hot 向量;对于未标记节点,它就是全零的向量。

    • 图的邻接矩阵定义为 A∈Rn×n ,度矩阵定义为 D=diag(d1,⋯,dn),其中 di=∑jAi,j 为节点 vi 的 degree。

      归一化的邻接矩阵定义为 D−1A 或者 D−1/2AD−1/2 ,这里我们采用前者。

  2. 特征传播(Feature Propagation)模型:在半监督节点分类中,基于拉普拉斯平滑假设,GNN 将节点特征 X 通过若干层转换并传播到整个图,这些层包括线性层以及非线性激活函数,从而逼近映射函数 X→Y 。

    GNN 的特征传播范式为:在第 l 层:

    H(l+1)=σ(D−1AH(l)W(l))Y=fout(H(L))

    其中:

    • σ(⋅) 为非线性激活函数。

    • W(l) 为第 l 层的、可训练的权重参数。

    • H(l) 为节点在第 l 层的 representation 矩阵,H(0)=X 。

    • fout(⋅) 为输出层,它作用于节点的 final embedding 矩阵 H(L) 上,L 为网络层数。

  3. 标签传播(Label Propagation)模型:LPA 假定相连节点之间的标签是平滑的,并在整个图上迭代传播标签。

    LPA 的特征传播范式为:在第 l 轮迭代:

    Y^(l+1)=D−1AY^(l)

    其中 Y^(0) 就是前面定义的初始标签矩阵。

    在 LPA 中,标签信息通过归一化的邻接矩阵 D−1A 从一个节点传播到其它节点。

1.1.1 UniMP 模型

  1. UniMP 整体架构如下图所示。我们采用了 Graph Transformer 并结合使用label embedding 来构建 UniMP 模型,从而将上述特征传播和标签传播结合在一起。

  2. Graph Transformer:由于 Transformer 已经在 NLP 中被证明功能强大,因此我们将常规的 multi-head attention 应用到 graph learning 中。

    给定节点representation 集合 H(l)={h→1(l),h→2(l),⋯,h→n(l)} ,我们计算从 vj 到 vi 的 multi-head attention :

    q→c,i(l)=Wc,q(l)h→i(l)+b→c,q(l)k→c,j(l)=Wc,k(l)h→j(l)+b→c,k(l)e→c,i,j=Wc,ee→i,j+b→c,eαc,i,j(l)=⟨q→c,i(l),k→c,j(l)+e→c,i,j⟩∑u∈Ni⟨q→c,i(l),k→c,u(l)+e→c,i,u⟩

    其中:

    • ⟨q→,k→⟩=exp⁡(q→⊤k→dh) 是指数缩放的点积函数,dh 是每个 head 的隐层大小。

    • Ni 为节点 vi 的邻域(包含节点 vi 自己)。

    • c 表示第 c 个 head attention 。

    我们首先将 source feature h→i(l) 映射到 query 向量 q→c,i(l)∈Rdh、将 distant feature h→j(l) 映射到 key 向量 k→c,j(l)∈Rdh 。映射过程中使用了不同的可训练的参数 Wc,q(l),Wc,k(l),b→c,q(l),b→c,k(l) 。然后编码edge feature e→i,j 到 e→c,i,j∈Rdh ,并添加到每一层的 key 向量作为额外的信息。编码过程中使用了可训练的参数 Wc,e,b→c,e 。

    edge feature 跨层共享。在计算注意力系数时,edge feature 作为 key 的附加信息。

    当得到 graph multi-head attention,我们聚合节点 vi 的邻域信息:

    z→c,j(l)=Wc,z(l)h→j(l)+b→c,z(l)h→^i(l)=∥c=1C[∑j∈Niαc,i,j(l)(z→c,j(l)+e→c,i,j)]r→i(l)=Wr(l)h→i(l)+b→r(l)β→i(l)=sigmoid(Wg(l)[h→^i(l)||r→i(l)||(h→^i(l)−r→i(l))])h→i(l+1)=relu(LayerNorm((1−β→i(l))⊙h→^i(l)+β→i(l)⊙r→i(l)))

    注:这里的公式和上面的架构图不匹配。根据公式中的描述,残差应该连接在 Graph Transformer 层之后。即:残差连接 -> LayerNorm -> ReLU 。

    其中:

    • || 表示向量拼接,⊙ 表示逐元素乘法。

    • 节点embedding h→j 转换为z→c,j∈Rd 用于后续的加权和。

      value 向量考虑了 z→c,j(l) 和 e→c,i,j 。

    和特征传播相比,multi-head attention 矩阵代替了原始的归一化邻接矩阵作为消息传递的转移矩阵(类似于 GAT)。另外,我们提出一个层间的门控残差连接(gated residual connection)来防止过度平滑(oversmoothing)。

    门控机制由 β→i(l) 所提供,它因节点的不同而不同、因层深(即 l )的不同而不同。

    类似于 GAT,如果我们在输出层应用 Graph Transformer,则我们对multi-head output 应用均值池化(并且没有 LayerNorm 和 relu ):

    h→^i(l)=1C∑c=1C[∑j∈Niαc,i,j(l)(z→c,j(l)+e→c,i,j(l))]h→i(l+1)=(1−β→i(l))⊙h→^i(l)+β→i(l)⊙r→i(l)
  3. Label Embedding and Propagation:我们提出将部分观测到的标签信息 embed 到节点特征相同的空间中:Y^∈Rn×c→Y^e∈Rn×df ,其中 Y^e 包含标记节点的 label embedding 向量和未标记节点的零向量。

    然后,我们通过简单地将节点特征和标签特征相加得到传播特征( propagation feature):

    H(0)=X+Y^e∈Rn×df

    我们可以证明,通过将部分标记的 Y^ 和节点特征 X 映射到相同的空间并相加,我们的模型可以在共享消息传递框架下统一标签传播和特征传播。

    证明:令 Y^e=Y^We ,令 A∗ 为归一化的邻接矩阵 D−1A 或者我们的Graph Transformer 中的attention 矩阵(即 (αi,j)n×n) 。为简化讨论,假设没有 edge feature,并且 Wr(l)=Wc,z(l)=W(l) 并且没有 bias 向量。那么我们有:

    H(0)=X+Y^WeH(l+1)=σ(((1−β)A∗+βI)H(l)W(l))

    其中 β 为一个门控函数或者一个类似于 APPNP 中预定义的超参数。

    为简单起见,我们取 σ(⋅) 为恒等映射,因此有:

    H(l)=((1−β)A∗+βI)l(X+Y^We)W(1)W(2)⋯W(l)=((1−β)A∗+βI)lXW+((1−β)A∗+βI)lY^WeW

    其中 W=W(1)W(2)⋯W(l) 。

    因此我们发现 UniMP 模型可以近似分解为特征传播 ((1−β)A∗+βI)lXW ,以及标签传播 ((1−β)A∗+βI)lY^WeW 。

1.1.2 Masked Label Prediction

  1. 已有的GNN 相关工作很少考虑在训练和推断阶段都使用部分观测的标签。大多数工作仅将这些标签信息作为 ground truth target ,从而监督训练模型参数 Θ :

    arg⁡maxΘlog⁡pΘ(Y^∣X,A)=∑i=1n^log⁡pθ(y^i∣X,A)

    其中 n^ 为带标签的样本数量,y^i 为标签信息。

    但是,我们的 UniMP 模型会传播节点特征和标签信息从而进行预测:p(y∣X,Y^,A) 。仅将上述目标用于我们的模型会使得标签在训练阶段泄露,从而导致 inference 性能很差。

    我们向BERT 学习,它可以 mask 输入的 word 并预测被 masked 的word 从而预训练BERT 模型。有鉴于此,我们提出了一种 masked label prediction 策略来训练我们的模型。训练过程中,在每个iteration,我们随机屏蔽部分节点标签为零并保留剩余节点标签,从而将 Y^ 转换为 Y~ 。其中被屏蔽的标签的比例由一个超参数 label_rate 所控制(label_rate 表示保留的标签比例)。

    假设被 masked 之后的标签矩阵为 Y¯,我们的目标函数是给定 X,Y~,A 的条件下预测 Y¯:

    arg⁡maxΘlog⁡pΘ(Y¯∣X,Y~,A)=∑i=1n¯log⁡pθ(y¯i∣X,Y~,A)

    其中: n¯ 为masked 标签的节点数量,y¯ 为 masked 标签。

    每个 batch 内的 target 节点的 label 都是被屏蔽掉的。否则的话,对 target 节点预测标签会发生标签泄漏。

    通过这种方式,我们可以训练我们的模型从而不会泄露self-loop 标签信息。

    这篇论文就是一篇水文,其思想就是把 node label 作为一个节点特征拼接到原始节点特征上去(当然,目标节点拼接全零信息而不是 node label 从而防止信息泄露),然后在所有输入的特征上执行随机 mask 。

  2. 在推断过程中,我们可以将所有 Y^ 作为输入标签从而预测剩余的未标记节点。

1.2 实验

  1. 数据集:和实际工程应用的图相比,大多数论文常用的图数据集规模很小。GNN 在这些论文数据集上的性能通常不稳定,因为数据集太小、不可忽略的重复率或泄露率、不切实际的数据切分等。

    最近发布的 OGB 数据集克服了常用数据集的主要缺点,它规模更大、更有挑战性。OGB 数据集涵盖了各种现实应用,并覆盖了多个重要领域,从社交网络、信息网络到生物网络、分子图、知识图谱。它还覆盖了各种预测任务,包括node-level 预测、graph-level 预测、edge-level 预测。

    因此我们在该数据集上进行实验,并将 UniMP 和 SOTA 模型进行比较。如下表所示,我们对三个 OGBN 数据集进行实验,它们是具有不同大小的不同任务。其中包括:

    • ogbn-products:关于 47 种产品类别的分类(多分类问题),其中每个产品给出了 100 维的节点特征。

    • ogbn-proteins:关于 112 种蛋白质功能的分类(多标签二分类问题),其中每条边并给出了 8 维的边特征。

    • ogbn-arxiv:关于 40 种文章主题的分类(多分类问题),其中每篇文章给出了 128 维的节点特征。

  2. 实现细节:

    • 这些数据集大小或任务各不相同,因此我们使用不同的抽样方法对模型进行评估。

      • 在 ogbn-products 数据集中,我们在训练期间每一层使用 size=10 的 NeighborSampling 来采样子图,并在推断期间使用 full-batch 。

      • 在 ogbn-proteins 数据集中,我们使用随机分区(Random Partition)将稠密图拆分为子图,从而训练和测试我们的模型。训练数据的分区数为 9、测试数据的分区数为 5 。

      • 在小型的 ogbn-arxiv 数据集中,我们对训练数据和测试数据进行full batch 处理。

    • 我们为每个数据集设置了模型的超参数,如下表所示。label rate表示我们在应用 masked label prediction 策略期间保留的标签比例。

    • 我们使用 lr=0.001 的Adam 优化器来训练模型。此外,我们在小型 ogbn-arxiv 数据集中将模型的权重衰减设置为 0.0005 来缓解过拟合。

    • 所有的模型都通过 PGL 以及 PaddlePaddle 来实现,并且所有实验均在单个 NVIDIA V100 32 GB 上实现。

  3. 实验结果:baseline 方法和其它SOTA 方法均由 OGB 排行榜给出。其中一些结果是原始作者根据原始论文官方提供,其它结果由社区重新实现的。并且所有这些结果都保证可以用开源代码复现。

    按照 OGB 的要求,我们对每个数据集运行 10 次实验结果,并报告均值和标准差。如下表所示,我们的 UniMP 模型在三个 OGBN 数据集上都超过所有其它模型。由于大多数模型仅考虑基于特征传播来优化模型,因此结果表明:将标签传播纳入 GNN 模型可以带来重大改进。

    具体而言:

    • UniMP 在 gbn-products 中获得了 82.56% 的测试准确率,相比 SOTA 取得了 1.6% 的绝对提升。

    • UniMP 在 gbn-proteins 中获得了 86.42% 的测试 ROC-AUC ,相比 SOTA 取得了 0.6% 的绝对提升。

    • UniMP 在 gbn-arxiv 中获得了 73.11% 的测试准确率,相比 SOTA 实现了0.37% 的绝对提升。

    作者没有消融研究:

    • 不同 label_rate 对于模型性能的变化(当 label_rate = 0 时表示移除标签传播)。

    • 除了 Graph Transformer 之外,UniMap 采用其它 base model 的效果是否也很好。